The structure and operation of communication systems is generally known. Many communication systems carry data, e.g., voice, audio, video, file, or other digital data that is sent from a transmitter to a receiver. On the transmitter side, data is first formed into packets. This data may be raw data or encoded data that represents the raw data. Each of these packets also typically includes a header, a known training sequence, and a tail. These packets are then modulated into symbols and the symbols are transmitted by the receiver and intended for receipt by the receiver. The receiver then receives the symbols and attempt to extract the data from the packets that are carried by the symbols.
A “channel” carries the symbols from the transmitter to the receiver. The channel is serviced by a wired, wireless, optical, or another media, depending upon the communication system type. In many communication systems, such as terrestrial based wireless communication systems, satellite based communication systems, cable based communication systems, etc., the channel distorts the transmitted symbols, from the perspective of the receiver, causing interference between a subject symbol and a plurality of symbols surrounding the subject symbol. This type of distortion is referred to as “inter-symbol-interference” and is, generally speaking, the time-dispersed receipt of multiple copies the symbols caused by multipath. The channel also introduces noise into the symbols prior to their receipt. Each of these concepts is well known.
Equalizers are now generally employed in an attempt to remove channel effects from a received symbol stream. Thus, equalizers are essential building blocks of modem receivers, especially in broadband applications where inter-symbol-interference is a critical problem. In a typical equalizer, the channel between the transmitter and the receiver is first estimated based upon the training sequence contained in one or more preambles. Then optimal equalizer coefficients (also referred to as taps and/or tap coefficients for the equalizer) are estimated based upon the channel estimate. The optimal equalizer coefficients are then used by the equalizer in extracting the data from the packet. The optimal equalizer coefficients may also be computed after extraction of the data from the equalized data stream based upon blind channel estimates. Equalizer coefficient generation should be repeated as often as possible, especially in fast varying channel cases, to generate new equalizer coefficients. The received data stream is usually buffered during the period that is required for channel estimation and equalizer coefficient computations. Thus, the preamble (and also actual data) contained in a packet may be used to generate the channel estimate and optimal equalizer coefficients that are employed by the equalizer to extract the data from the packet.
As symbol rates increase and modulation schemes become more complex, equalizers have increasingly greater importance. A critical factor in increasing the effectiveness of these equalizers is the complexity of optimal equalizer coefficient computation. A reduction in this complexity: (1) reduces the memory size required to buffer the received symbol stream sequence during the period required for coefficient computations; (2) allows more frequent uploading of new coefficients thus enabling the equalizer to track fast channel variations; and (3) simplifies the hardware and, resultantly, the die area required for coefficient computation.
FIG. 1 is a block diagram illustrating a discrete time symbol-spaced Decision Feedback Equalizer (DFE) based channel equalization model 100. The channel equalization model 100 includes a channel 102, a Feed Forward Equalizer (FFE) 104, a Decision block 106, and a Feed Back Equalizer (FBE) 108. An input sequence x(n) is complex, independent and identically distributed with unit power. Additive noise ν(n) is white Gaussian with power spectral density σv2. Furthermore, the decisions {hacek over (x)}(n−δ) are assumed to be correct, and hence equal to x(n−δ). This assumption makes the design of the FBE 108 and FFE 104 easier, but at the expense of introducing error propagation due to possibly wrong decisions. The FFE 104 function G(z) has length L. The channel (impulse) response vector of the channel h is given in Equation (1) as:
                    h        ⁢                  =          Δ                ⁢                  [                                                                      h                  ⁡                                      (                    0                    )                                                                                                h                  ⁡                                      (                    1                    )                                                                              ⋯                                                              h                  ⁡                                      (                                          N                      -                      1                                        )                                                                                ]                                    Equation  (1)            The number of coefficients (taps) M of the FBE 108 function B(z) is assumed greater or equal to the channel memory, i.e., M≧N−1. These modeling assumptions are feasible in practice.
In estimating FFE 104 and FBE 108 equalizer coefficients, the goal is to minimize the mean square error quantity of Equation (2).ζ=E|x(n−δ)−{circle around (x)}(n−δ)|2,  Equation (2)where {circumflex over (x)}(n−δ) is the delayed input signal estimate prior to the Decision block 106. By collecting the coefficients of both G(z) and B(z) into vectors, we can express the received signal {circumflex over (x)}(n−δ) in Equation (3) as:xn=yng−{hacek over (x)}nb  Equation (3)A channel output model defining yn may be expressed by:yn=xnH+νn  Equation (4)where H is the (N+L−1)×L convolution matrix corresponding to the channel response and expressed as:
                    H        =                  [                                                                      h                  ⁡                                      (                    0                    )                                                                              0                                            ⋯                                            0                                                                                      h                  ⁡                                      (                    1                    )                                                                                                h                  ⁡                                      (                    0                    )                                                                              ⋯                                            0                                                                    ⋮                                            ⋮                                            ⋰                                            ⋮                                                                                      h                  ⁡                                      (                                          N                      -                      1                                        )                                                                                                h                  ⁡                                      (                                          N                      -                      2                                        )                                                                              ⋰                                                              h                  ⁡                                      (                    0                    )                                                                                                      0                                                              h                  ⁡                                      (                                          N                      -                      1                                        )                                                                              ⋰                                                              h                  ⁡                                      (                    1                    )                                                                                                      ⋮                                            ⋮                                            ⋰                                            ⋮                                                                    0                                            0                                            ⋯                                                              h                  ⁡                                      (                                          N                      -                      1                                        )                                                                                ]                                    Equation  (5)            In this model, xn is the 1×(N+L−1) input vector,
                              x          n                ⁢                  =          Δ                ⁢                  [                                                                      x                  ⁡                                      (                    n                    )                                                                                                                                                                  x                        ⁡                                                  (                                                      n                            -                            1                                                    )                                                                                                            ⋯                                                                                      x                        ⁡                                                  (                                                      n                            -                            N                            -                            L                            +                            2                                                    )                                                                                                                                                  ]                                    Equation  (6)            yn is the 1×L input regression vector to the FFE 104,
                              y          n                ⁢                  =          Δ                ⁢                  [                                                                      y                  ⁡                                      (                    n                    )                                                                                                y                  ⁡                                      (                                          n                      -                      1                                        )                                                                              ⋯                                                              x                  -                                      y                    ⁡                                          (                                              n                        -                        L                        +                        1                                            )                                                                                                    ]                                    Equation  (7)            {hacek over (x)}n is the 1×M input regression vector to the (strictly causal) FBE 108,
                                          x            ⋓                    n                ⁢                  =          Δ                ⁢                  [                                                                      x                  ⁡                                      (                                          n                      -                      δ                      -                      1                                        )                                                                                                x                  ⁡                                      (                                          n                      -                      δ                      -                      2                                        )                                                                              ⋯                                                              x                  ⁡                                      (                                          n                      -                      δ                      -                      M                                        )                                                                                ]                                    Equation  (8)            and νn is the 1×L vector noise process.
The current efficient methods for computing the optimal filter coefficients of a decision feedback equalizer, which optimizes (1), are based on the well-known Cholesky decomposition method (from a finite-dimension problem formulation). Two published papers: (1) N. Al-Dhahir and J. M. Cioffi, “MMSE Decision-Feedback Equalizers: Finite-Length Results,” IEEE Trans. on Information Theory, vol. 41, no. 4, pp. 961–973, July 1995; and (2) N. Al-Dhahir and J. M. Cioffi, “Fast Computation of Channel-Estimate Based Equalizers in Packet Data Transmission,” IEEE Trans. on Signal Processing, vol. 43, no. 11, pp. 2462–2473, November 1995 provide one procedure for computing optimal DFE settings. These equations are referred to hereinafter as “Al-Dhahir's equations.”
Generally speaking, Al-Dhahir's equations, as well as other existent techniques rely on the use of the generalized Schur algorithm for fast Cholesky decomposition of the matrices involved in both the FBE and FFE optimal coefficient setting computations. However, the overall procedures for calculation of the DFE (FBE and FFE) coefficients have the following problems:                1. These procedures require the use of nonstructured recursive equations. These equations are difficult to implement from the perspective of integrated circuit design. In particular, the recursive equations used in Al-Dhahir's DFE tap (coefficient) computer often requires the use of a DSP processor. As is generally known, the use of a DSP processor in a real-time communication system application is severely constricts system throughput.        2. These procedures, in particular Al-Dhahir's equations require a complex tap computer. In other words, they require the use of a relatively large number of complex multiplies.        3. These prior art DFE coefficient computation techniques can be used only for equalizers that use a fixed equalizer delay (δ), which is set to its maximum value L−1, where L is the length of the FFE 104. The prior art techniques cannot use a different delay δ of the equalizer. Thus, there is a need in the art for a new equalizer coefficient computation methodology and system in which such methodology may be implemented.        